--串口调试FTIR的LLCOM脚本示例

cmd=5
cmd_data=500

---------------------------------------
--函数名:int2hex
--功能 ：32位int的十进制标志转8位十六进制
-- 表示
--例如：12 --> 0000000c  
-- -12 --> fffffff4
---------------------------------------
function int2hex(x)
    local b32HH = (x >> 24) & 0xff;
    local b32HL = (x >> 16) & 0xff;
    local b32LH = (x >>  8) & 0xff;
    local b32LL = (x      ) & 0xff;
    local a = string.format("%02x",b32HH)
    local b = string.format("%02x",b32HL)
    local c = string.format("%02x",b32LH)
    local d = string.format("%02x",b32LL)
    local e=a..b..c..d
    return e
end
---------------------------------------
--函数名:char2hex
--功能 ：十进制char转16进制
--输入： 0-255 
--例如: 12  --> 0c  
--     -12  --> f4
---------------------------------------
function char2hex(x)
    x= x & 0xff;
    return string.format("%02x",x)
end


--注册串口接收函数

uartReceive = function (data)
	-- 将接收到的4个字节的数据合成int数据
	local f = io.open("m2.dat","a")
	--io.output(f)
	log.info("uartReceive",data)
	--data = string.gsub(data, "//r//n","")
	f:write(data)
	f:close()
    sys.publish("UART",data)--发布消息
    log.info("Rec data ok!","cmd=",cmd,"cmd_data=",cmd_data)
end





---------------------------------------
--函数名:SendCmd
--功能 ：发送一次指令，运行该脚本后可以使用该函数进行调试
--@param1： 0-255 
--@param2： int型数据
---------------------------------------
function SendCmd(cmd,data)
	local str ="c"..cmd.."d"..data.."e"
	log.info("SendCmd",apiSendUartData(str),"cmd="..cmd,"cmd_data="..data)
end

sys.taskInit(function ()
	local cmd=5
    local cmd_data=500
    local cnt = 1
    local str=""
    while (cnt>0) do    --true do	
    	SendCmd(cmd,cmd_data)
        cnt = cnt-1
        os.execute("gnuplot.exe ./plot.plt")
    	sys.wait(10) --等待的ms
    end
    
end)















